\begin{problem}{Два шаблона}
{patterns2.in}{patterns2.out}
{2 секунды}{256 мегабайт}

Многие операционные системы используют шаблоны для ссылки на группы объектов:
файлов, пользователей и т.~д. Ваша задача --- найти строку минимально
возможной длины, которая подходит под два заданных шаблона.

Алфавит в этой задаче состоит из маленьких букв латинского алфавита
и точки (`.'). Шаблоны могут содержать любые символы алфавита, а также
специальные символы `?' и `*'. Под `?' подходит любой символ алфавита,
а под `*' --- любая строка символов алфавита (возможно, пустая).
Под символы алфавита, встречающиеся в шаблоне, подходят только такие
же символы алфавита. Строка считается подходящей под шаблон, если
символы шаблона можно последовательно отбразить в строку вышеуказанным
способом. Например, строки ``\texttt{ab}'', ``\texttt{aab}'' и ``\texttt{beda.}''
подходят под шаблон ``\texttt{*a?}'',
а строки ``\texttt{bebe}'', ``\texttt{a}'' и ``\texttt{ba}'' --- нет.

\InputFile

Входной файл состоит из одного или нескольких тестов.
Первая строка входного файла --- это количество тестов в нем.

Каждый тест состоит из двух строк, содержащих шаблоны $P_1$ и $P_2$.
Длина любого из шаблонов не превосходит 100 символов.

\OutputFile

Для каждого из тестов ответ задается одной строкой:

\begin{itemize}
\item 
Если строка, подходящая под оба шаблона, существует, выведите такую строку
минимально возможной длины (если таких несколько, разрешается выводить любую).
\item В противном случае выведите строку ``\texttt{NO}''.
\end{itemize}

\Example

\begin{example}
\exmp{
2
*k*tt*n*
*i*e*
haha
hihi
}{
kitten
NO
}%
\end{example}

\end{problem}
